
/**
 * 游戏按钮类
 * GameGlobal.databus全局池子
 */
export default class Button  {
  constructor(canvas) {
		this.startBtn={ x: canvas.width * 0.5 - 100, y: canvas.height * 0.7, w: 200, h: 80 }//开始按钮
		this.musicBtn={ x: canvas.width - 120, y: 80, r: 20 }//音乐按钮
		this.rukouBtn={ x: 20, y: 280, w: 50, h: 50 }//音乐按钮
    // super(BACKGROUND_IMAGE_SRC, BACKGROUND_WIDTH, BACKGROUND_HEIGHT);
  }

  update() {
   
  }

  /**
   * 背景图重绘函数
   * 绘制两张图片，两张图片大小和屏幕一致
   * 第一张漏出高度为 top 部分，其余的隐藏在屏幕上面
   * 第二张补全除了 top 高度之外的部分，其余的隐藏在屏幕下面
   */
  render(ctx) {
		// 绘制开始按钮
		ctx.fillStyle = '#4CAF50'; // ✨ 直接使用属性赋值
		ctx.fillRect(this.startBtn.x, this.startBtn.y,
			this.startBtn.w, this.startBtn.h);
		ctx.fillStyle = '#FFFFFF'; // ✨ 直接使用属性赋值
		ctx.font = '24px Arial';
		ctx.fillText('开始找茬', this.startBtn.x + 50, this.startBtn.y + 50);
		
		// 绘制入口
		ctx.fillStyle = '#4CAF50'; // ✨ 直接使用属性赋值
		ctx.fillRect(this.rukouBtn.x, this.rukouBtn.y,
			this.rukouBtn.w, this.rukouBtn.h);
		ctx.fillStyle = '#FFFFFF'; // ✨ 直接使用属性赋值
		ctx.font = '16px Arial';
		ctx.fillText('入口有奖', this.rukouBtn.x + 50, this.rukouBtn.y + 50);
		
		// 绘制音乐按钮
		ctx.beginPath();
		ctx.arc(this.musicBtn.x, this.musicBtn.y, this.musicBtn.r, 0, 2 * Math.PI);
		ctx.fillStyle = GameGlobal.databus.isMusicOn ? '#00FF00' : '#FF0000'; // ✨ 直接使用属性赋值
		ctx.fill();
  }
  //  绘制游戏按钮块
  renderGame(ctx,gameScreen) {
	console.log("绘制游戏按钮块", gameScreen)
	  // 绘制游戏可点击区
		ctx.fillStyle = '#FFD700'; // ✨ 直接使用属性赋值
		gameScreen.spots.forEach(spot => {
			ctx.beginPath();
			ctx.arc(spot.x, spot.y, spot.r, 0, 2 * Math.PI);
			ctx.fill();
		});
		
		// 绘制计分板
		ctx.font = '30px Arial';
		ctx.fillStyle = '#00FF00'; // ✨ 直接使用属性赋值
		ctx.fillText('✓', 10, 40);
		ctx.fillText(`已找到 ${GameGlobal.databus.numberGame.clickedCount}/${GameGlobal.databus.numberGame.totalSpots} 个`, 10, 80);
  }
  // 是否触摸开始按钮
  isTouchStartBtn(x,y){
	  return this.isInRect(x, y, this.startBtn)
  }
  // 是否触摸开始按钮
  isTouchMusicBtn(x,y){
	  return this.isInCircle(x, y, this.musicBtn)
  }
  // 是否触摸开始按钮
  isTouchrukouBtn(x,y){
  	  return this.isInRect(x, y, this.rukouBtn)
  }
  
  // 辅助函数
  isInRect(x, y, rect) {
  	return x >= rect.x && x <= rect.x + rect.w &&
  		y >= rect.y && y <= rect.y + rect.h;
  }
  
  isInCircle(x, y, circle) {
  	const dx = x - circle.x;
  	const dy = y - circle.y;
  	return dx * dx + dy * dy <= circle.r * circle.r;
  }
  
}
